package com.huike.service;

import com.huike.po.*;
import com.huike.pojo.GroupCustomBean;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 王逸瑶(主) && 陈洁怡
 *
 */
public interface GroupService {
    public List<GroupMessage> getChatRecord (String groupId);
    // 群聊消息发送
    public boolean sendMessage (GroupMessage message);
    // 获取群漫游消息记录
    public List<GroupMessage> getRoamingRecord(String groupId);
    // 根据群id获取群成员
    public List<GroupMember> getGroupMembersByGroupId(String groupId);
    // 删除离线消息
    public boolean deleteOfflineMsg (String userAccount, String groupId);
    //添加管理员
    public boolean addManager(GroupMember groupMember);
    //删除管理员
    public boolean delManager(GroupMember groupMember);
    //设置禁言
    public boolean muteMember(GroupMember groupMember);
    //解除禁言
    public boolean unmuteMember(GroupMember groupMember);
    //设置集体禁言（除群主管理员）
    public boolean muteAllMember(GroupBasic groupBasic);
    //解除集体禁言（除群主管理员）
    public boolean unmuteAllMember(GroupBasic groupBasic);
    //判断该人是否在禁言状态
    public boolean isMuted(String account, String groupId);
    //入群申请的数据库处理以及管理员通知
    public boolean handleGroup(GroupCustomBean groupRequest, String type);
    public GroupDetail findGroup(String groupId);
    public List<GroupMessage> getFileRecord(String groupId);
    // 邀请群成员
    public boolean inviteMember(GroupIdAndAccouts groupIdAndAccouts);
    // 删除群成员
    public boolean deleteMember(GroupIdAndAccouts groupIdAndAccouts);
    //新建群
    public GroupDetail createGroup(GroupIdAndAccouts groupIdAndAccouts);
    //自己退群
    public boolean exitGroup(GroupWithOwnerAccount groupWithOwnerAccount);
    //传送文件
    public boolean sendFile(GroupFileMsg message, MultipartFile file);
    //根据文件名和群号获取文件
    public byte[] getFile(String groupId, String fileName);
    //根据群号获取文件列表
    public List<GroupFileMsg> getFileList(String groupId);
}
